public class Demo04 {
    public static void main(String[] args) {
        //测试 byte取值范围 -128~127
        byte a1 = -128;
        //byte a2 = -129; 超出范围
        byte a3 = 127;
        //byte a4 = 128;超出范围

        //测试short取值范围 -32768~32767
        short b1 = -32768;
        //short b2 = -32769;超出范围
        short b3 = 32767;
        //short b4 = 32768;超出范围

        //测试 int 取值范围  -2147483648~2147483647
        int c1 = -2147483648;
        //int c2 = -2147483649;超出范围
        int c3 = 2147483647;
        //int c4 = 2147483648;超出范围

        //int类型数据溢出 超出了取值范围 java采用补码方式 得出数据
        int d1 = 2147483647;
        d1 = d1 + 3;
        System.out.println(d1); //-2147483646

        //整数型默认类型是int long类型使用时 后加L  long也存在溢出效应
        long l1 = 1000000000L;

        // 数据溢出  数据没超出long 的取值范围 但 默认是int类型，超出了int取值范围。
        long l2 = 1000000000 *3 *10L;
        System.out.println(l2); //-12949672960

        //解决方案 在第一个数据后面加L 转变为long类型
        long l3 = 1000000000L *3 *10;
        System.out.println(l3);
    }
}
